package com.shop.cloud.domain.hongfu;

import io.swagger.annotations.ApiModelProperty;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.shop.cloud.common.mybatis.BaseEntity;

/**
 * 
 * goods_category-goods_category
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class GoodsCategory extends BaseEntity{

	private static final long serialVersionUID = 1L;
	
	public final static int TYPE_HONGFU = 1;		// 鸿福商城
	public final static int TYPE_POINTS = 2;		// 积分商城
	public final static int TYPE_TRAVEL = 3;		// 旅游专区
    
	/**
	 * 父类id
	 */
	@ApiModelProperty(value = "父类id")
	 private int parentId;
	/**
	 * 商品分类名称
	 */
	@ApiModelProperty(value = "商品分类名称")
	 private String name;
	
	/**
	 * 种类
	 */
	@ApiModelProperty(value = "种类")
	 private int type;
	
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Timestamp createTime;
	
	/**
	 * 更新时间
	 */
	@ApiModelProperty(value = "更新时间")
	private Timestamp updateTime;
	
	@ApiModelProperty(value = "")
	private Timestamp create_time;
	
	@ApiModelProperty(value = "")
	private Timestamp update_time;
	
	private List<GoodsCategory> goodsCategorys;
	
	
	
	 @JsonProperty("typeName")
	    @ApiModelProperty(value = "所属种类名称", example = "", required = true)
	    private String typeName;
	    
	    @JsonProperty("firstName")
	    @ApiModelProperty(value = "一级分类名称", example = "", required = true)
	    private String firstName;
	    
	    @JsonProperty("secondName")
	    @ApiModelProperty(value = "二级分类名称", example = "", required = true)
	    private String secondName;
	    
	    @JsonProperty("last_edit_time")
	    @ApiModelProperty(value = "最后编辑时间", example = "", required = true)
	    private Date last_edit_time;
	    
	    @JsonProperty("pId")
	    @ApiModelProperty(value = "一级分类Id", example = "", required = true)
	    private long pId;
	    
	
	public String getTypeName() {
			return typeName;
		}

		public void setTypeName(String typeName) {
			this.typeName = typeName;
		}

		public String getFirstName() {
			return firstName;
		}

		public void setFirstName(String firstName) {
			this.firstName = firstName;
		}

		public String getSecondName() {
			return secondName;
		}

		public void setSecondName(String secondName) {
			this.secondName = secondName;
		}

		public Date getLast_edit_time() {
			return last_edit_time;
		}

		public void setLast_edit_time(Date last_edit_time) {
			this.last_edit_time = last_edit_time;
		}

		public long getpId() {
			return pId;
		}

		public void setpId(long pId) {
			this.pId = pId;
		}

	public List<GoodsCategory> getGoodsCategorys() {
		return goodsCategorys;
	}

	public void setGoodsCategorys(List<GoodsCategory> goodsCategorys) {
		this.goodsCategorys = goodsCategorys;
	}

	public GoodsCategory(){
		
	}
	
    public Timestamp getUpdate_time() {
		return update_time;
	}

	public void setUpdate_time(Timestamp update_time) {
		this.update_time = update_time;
	}

	public Timestamp getCreate_time() {
		return create_time;
	}

	public void setCreate_time(Timestamp create_time) {
		this.create_time = create_time;
	}
 
    /**
	 * @return the parentId
	 */
	public int getParentId() {
		return parentId;
	}

	/**
	 * @param parentId the parentId to set
	 */
	public void setParentId(int parentId) {
		this.parentId = parentId;
	}

	public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public Timestamp getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}

	public Timestamp getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Timestamp updateTime) {
		this.updateTime = updateTime;
	}

}